perm filename FIB.MCL[TIM,LSP] blob sn#646546 filedate 1982-03-04 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(defun fib (n)	7.368
C00003 00003	(defun timit ()
C00006 00004	(timit)
C00007 ENDMK
C⊗;
(defun fib (n)	;7.368
       (cond ((= n 0) 1)
	     ((= n 1) 1)
	     (t (+ (fib (- n 1))(fib (- n 2))))))

(defun fib1 (n)	;6.994
       (cond ((zerop n) 1)
	     ((equal n 1) 1)
	     (t (plus (fib1 (difference n 1))(fib1 (difference n 2))))))

(defun fib2 (n)	;7.033
       (cond ((zerop n) 1)
	     ((= n 1) 1)
	     (t (+ (fib2 (- n 1))(fib2 (- n 2))))))

(defun fib3 (n)	;6.993
       (cond ((zerop n) 1)
	     ((equal n 1) 1)
	     (t (+ (fib3 (- n 1))(fib3 (- n 2))))))

(defun timit ()
 ((lambda (t1 x gt)
	  (fib 20.)
	  (setq t1 (- (runtime) t1))
	  (setq gt (- (status gctime) gt))
	  (print (list 'runtime
		       (QUOTIENT (FLOAT  (- t1 gt))
				 1000000.)))
	  (print (list 'gctime
		       (quotient (float gt) 1000000.))))
  (runtime) ()(status gctime)))

(defun timit1 ()
 ((lambda (t1 x gt)
	  (fib1 20.)
	  (setq t1 (- (runtime) t1))
	  (setq gt (- (status gctime) gt))
	  (print (list 'runtime
		       (QUOTIENT (FLOAT  (- t1 gt))
				 1000000.)))
	  (print (list 'gctime
		       (quotient (float gt) 1000000.))))
  (runtime) ()(status gctime)))

(defun timit2 ()
 ((lambda (t1 x gt)
	  (fib2 20.)
	  (setq t1 (- (runtime) t1))
	  (setq gt (- (status gctime) gt))
	  (print (list 'runtime
		       (QUOTIENT (FLOAT  (- t1 gt))
				 1000000.)))
	  (print (list 'gctime
		       (quotient (float gt) 1000000.))))
  (runtime) ()(status gctime)))

(defun timit3 ()
 ((lambda (t1 x gt)
	  (fib3 20.)
	  (setq t1 (- (runtime) t1))
	  (setq gt (- (status gctime) gt))
	  (print (list 'runtime
		       (QUOTIENT (FLOAT  (- t1 gt))
				 1000000.)))
	  (print (list 'gctime
		       (quotient (float gt) 1000000.))))
  (runtime) ()(status gctime)))

(defun ffib (n)
       (cond ((= n 0) 1)
	     ((= n 1) 1)
	     (t (do ((n1 1 n0)
		     (i 2 (+ i 1))
		     (n0 2 (+ n1 n0)))
		    ((= i n) n0)))))
;(timit)
;(RUNTIME 7.364) 
;(GCTIME 0.0) 
;T 
;← 
;(RUNTIME 7.364) 
;(GCTIME 0.0) 
;T 
;← 
;(timit)
;(RUNTIME 7.37) 
;(GCTIME 0.0) 
;T 
;← 
;***********************
;compiled
(timit)
(RUNTIME 0.207) 
(GCTIME 0.0) 
(RUNTIME 0.207) 
(GCTIME 0.0) 
(RUNTIME 0.206) 
(GCTIME 0.0) 
(RUNTIME 0.207) 
(GCTIME 0.0) 
(RUNTIME 0.207) 
(GCTIME 0.0)